package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import javax.validation.constraints.*;

import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 婚恋匹配记录对象 dating_match
 *
 * @author ruoyi
 * @date 2024-01-15
 */
@TableName("dating_match")
@Data
public class DatingMatch extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 匹配ID */
    @TableId(value = "match_id", type = IdType.AUTO)
    private Long matchId;

    /** 人员A的ID */
    @Excel(name = "人员A的ID")
    private Long memberIdA;

    /** 人员B的ID */
    @Excel(name = "人员B的ID")
    private Long memberIdB;

    /** 匹配得分（0-100） */
    @Excel(name = "匹配得分")
    private BigDecimal matchScore;

    /** 匹配类型（AUTO自动匹配/MANUAL手动匹配） */
    @Excel(name = "匹配类型", readConverterExp = "AUTO=自动匹配,MANUAL=手动匹配")
    private String matchType;

    /** 匹配状态 */
    @Excel(name = "匹配状态", dictType = "dating_match_status")
    private String matchStatus;

    /** A方联系状态 */
    @Excel(name = "A方联系状态", dictType = "dating_contact_status")
    private String contactStatusA;

    /** B方联系状态 */
    @Excel(name = "B方联系状态", dictType = "dating_contact_status")
    private String contactStatusB;

    /** A方反馈 */
    @Excel(name = "A方反馈")
    private String feedbackA;

    /** B方反馈 */
    @Excel(name = "B方反馈")
    private String feedbackB;

    /** 负责红娘ID */
    @Excel(name = "负责红娘ID")
    private Long consultantId;

    /** 最终结果 */
    @Excel(name = "最终结果", dictType = "dating_match_result")
    private String matchResult;

    /** 成功配对日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "成功配对日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date successDate;


    /** 人员A姓名 (关联查询字段) */
    @Excel(name = "人员A姓名")
    @TableField(exist = false)
    private String memberNameA;

    /** 人员B姓名 (关联查询字段) */
    @Excel(name = "人员B姓名")
    @TableField(exist = false)
    private String memberNameB;

}
